Non-volatile memory includes resistive memory technologies include any memory that involves detection of bits based on a change in resistance state. The phenomenon causing the change in resistance can vary based on the particular kind of material and can be due to a wide variety of mechanisms, including but not limited to tunneling magnetoresistance, phase change, filamentary mechanisms or programmable metallization cells. Controlling the resistance change to make it less variable or more reproducible, i.e., have a constant current or a narrow distribution in current effect the resistance change of all resistive memory cells can provide a more reliable product.